package br.ufrn.sipac.patrimonio.coletor.activity;

import java.util.List;

import br.ufrn.sipac.patrimonio.coletor.R;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MenuAdapter extends BaseAdapter {
	private List<String> listOpcoes;

	// Classe utilizada para instanciar os objetos do XML
	private LayoutInflater inflater;

	public MenuAdapter(Context context, List<String> listOpcoes) {
		this.listOpcoes = listOpcoes;
		inflater = (LayoutInflater) context
				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
	}

	public void addItem(final String item) {
		this.listOpcoes.add(item);
		// Atualizar a lista caso seja adicionado algum item
		notifyDataSetChanged();
	}

	@Override
	public int getCount() {
		return listOpcoes.size();
	}

	@Override
	public Object getItem(int position) {
		return listOpcoes.get(position);
	}

	@Override
	public long getItemId(int position) {
		return position;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		// Pega o registro da lista e trasnfere para o objeto estadoVO
		String opcao = listOpcoes.get(position);

		// Utiliza o XML estado_row para apresentar na tela
		convertView = inflater.inflate(R.layout.layout_menu, null);

		// Instância os objetos do XML
		ImageView icone = (ImageView) convertView.findViewById(R.id.icon);
		TextView text = (TextView) convertView.findViewById(R.id.label);

		// pega os dados que estão no objeto estadoVO e transfere para os
		// objetos do XML
		icone.setImageResource(getIcone(position));
		text.setText(listOpcoes.get(position));

		return convertView;
	}

	/**
	 * Associa os ícones de menu aos itens do listView.
	 * 
	 * @param item
	 * @return
	 */
	private int getIcone(int item) {
		// Novo Levantamento
		if (item == 0)
			return R.drawable.levantamento;
		// Continuar Levantamento
		else if (item == 1)
			return R.drawable.alterar;
		// Visualizar levantamentos
		else if (item == 2)
			return R.drawable.visualizar;
		// Finalizar levantamentos
		else if (item == 3)
			return R.drawable.finalizar_documento;
		// Configurar conexão
		else
			return R.drawable.patrimonio;
	}

}
